<template>
  <div>
    <upload-excel :on-success="importSuccess" />
  </div>
</template>

<script>
import { importEmployee } from '@/api/employees'
import { formatDate } from '@/utils/formatTime'
export default {
  name: 'Import',
  methods: {
    // excel 导入成功自动调用
    async importSuccess({ header, results }) {
      const newResults = this.transferData(results)
      await importEmployee(newResults)
      // 导入成功跳转到员工列表
      this.$router.back()
    },
    // 处理发送给后端的参数
    transferData(results) {
      const newArr = []
      const userRelations = {
        '入职日期': 'timeOfEntry',
        '手机号': 'mobile',
        '姓名': 'username',
        '转正日期': 'correctionTime',
        '工号': 'workNumber'
      }
      results.forEach(item => {
        const map = {}
        // 第一：需要把中文的key 转化为英文
        // 先把每一项里的key值拿到
        Object.keys(item).forEach(key => {
          // 使用定义的好的中文对照英文对象，根据key拿到对应的英文
          // 然后把对应的英文当做 map对象的key，原数据的value当做 map对象的value
          map[userRelations[key]] = item[key]
        })
        newArr.push(map)
      })
      // 第二：把value里的时间，转化为标准的时间格式
      // 需要处理的日期
      const disposeTime = ['timeOfEntry', 'correctionTime']
      newArr.forEach(item => {
        Object.keys(item).forEach(key => {
          // 遍历出包含日期的key值
          if (disposeTime.includes(key)) {
            // 格式化成标准的时间
            item[key] = new Date(formatDate(item[key], '/'))
          }
        })
      })
      return newArr
    }
  }
}
</script>
